package com.ycy.plugin.code;

import javax.xml.bind.DatatypeConverter;
import java.io.IOException;
import java.util.Base64;

/**
 * 编码方式
 * 目前只支持 base64 和 hex
 */
public class CodeAlgorithm {

  public static String Base64Encode(byte[] signData) {
    //这个方法base自动换行
    //return new BASE64Encoder().encode(signData);
    return Base64.getEncoder().encodeToString(signData);
  }

  public static byte[] Base64Decode(String src) throws IOException {
    return Base64.getDecoder().decode(src);
  }

  public static String HexEncode(byte[] hmacMd5Byte) {
    return DatatypeConverter.printHexBinary(hmacMd5Byte);
  }

  public static byte[] HexDecode(String src) {
    int l = src.length() / 2;
    byte[] ret = new byte[l];
    for (int i = 0; i < l; i++) {
      ret[i] = Integer.valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
    }
    return ret;
  }

}
